View Javadoc

1   package org.thema.scriptware.digester;
2   import java.io.IOException;
3   import java.io.InputStream;
4   import java.util.HashMap;
5   import java.util.Map;
6   import org.apache.commons.digester.Digester;
7   
8   public class DigesterDatasource {
9       HashMap datasources;
10      private InputStream file;
11      
12      
13      public DigesterDatasource(InputStream file) {
14          this.file = file;
15          datasources = new HashMap();
16      }
17      
18      public void digest() throws IOException,org.xml.sax.SAXException {
19          try {
20              Digester digester = new Digester();
21              digester.push(this);
22              
23              digester.addObjectCreate( "datasources/datasource", Datasource.class);
24              
25              digester.addBeanPropertySetter( "datasources/datasource/name");
26              digester.addBeanPropertySetter( "datasources/datasource/url");
27              digester.addBeanPropertySetter( "datasources/datasource/driver");
28              digester.addBeanPropertySetter( "datasources/datasource/user");
29              digester.addBeanPropertySetter( "datasources/datasource/pass");
30              
31              digester.addSetNext( "datasources/datasource", "addDatasource" );
32              
33              DigesterDatasource ds = (DigesterDatasource) digester.parse(file);
34              
35          } catch (IOException e) {
36              throw new IOException("Erro de I/O ao utilizar o arquivo!");
37          } catch (org.xml.sax.SAXException ex) {
38               throw new org.xml.sax.SAXException("Erro realizando parse de arquivo datasources.xml!");
39          }
40      }
41      
42      public void addDatasource( Datasource ds ) {
43          datasources.put(ds.getName(),ds);
44      }
45      public Map getDatasources(){
46          return datasources;
47      }
48  }